<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /* 你是否还在为伪类选择 符:checked 和属性选择符 [checked] 之间的区别感到疑 惑？
        后者是不会根据用户的交互 行为进行更新的，因为用户的交 互并不会影响到HTML 标签上的 属性。 */
        
        input[type="checkbox"] {
            position: absolute;
            clip: rect(0, 0, 0, 0);
        }
        
        input[type="checkbox"]+label::before {
            content: '\a0';
            /* 不换行空格 */
            display: inline-block;
            vertical-align: .2em;
            width: .8em;
            height: .8em;
            margin-right: .2em;
            border-radius: .2em;
            background: silver;
            text-indent: .15em;
            line-height: .65;
        }
        
        input[type="checkbox"]:checked+label::before {
            content: '\2713';
            background: yellowgreen;
        }
        
        input[type="checkbox"]:focus+label::before {
            box-shadow: 0 0 .1em .1em #58a;
        }
        
        input[type="checkbox"]:disabled+label::before {
            background: gray;
            box-shadow: none;
            color: #555;
        }
    </style>
</head>

<body>
    <div>
        <input type="checkbox" id="awesome" />
        <label for="awesome">Awesome!</label>
    </div>

</body>

</html>